@强化学习中action value减去state value之后怎么就减小了方差,方差不是不变吗?
链接: https://www.zhihu.com/question/344367451
MathOverflow
核心误区澄清:“减去一个常数(baseline)不会改变随机变量的方差,因为方差是平移不变的。” 问题出在哪? #card
在强化学习中,基线 $\mathrm{V}(\mathrm{s})$ 不是常数!它是状态 s 的函数,与动作值 $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 是高度相关的随机变量。
因此,我们需要分析 $\operatorname{Var}[Q(s, a)-V(s)]$ 的联合分布特性。
为什么 $\operatorname{Var}[A(s, a)] \le \operatorname{Var}[Q(s, a)]$ ? #card
[[协方差效应]]
方差公式展开: $\operatorname{Var}[Q-V]=\operatorname{Var}[Q]+\operatorname{Var}[V]-2 \operatorname{Cov}(Q, V)$
若 Q 和 V 正相关(通常成立,因为 $V(s)=\mathbb{E}_a[Q(s, a)]$ ),协方差 $\operatorname{Cov}(Q, V)>0$ ,
- 因此: $\operatorname{Var}[Q-V]=\operatorname{Var}[Q]+\operatorname{Var}[V]-2 \operatorname{Cov}(Q, V)<\operatorname{Var}[Q]+\operatorname{Var}[V]$
$\operatorname{Var}[Q-V]=\operatorname{Var}[Q]+\operatorname{Var}[V]-2 \operatorname{Cov}(Q, V)<\operatorname{Var}[Q]+\operatorname{Var}[V]$ 是否一定小于 $\operatorname{Var}[Q]$ ? #card
实际场景中的方差减少
1.$V(s)$ 平滑了 $Q(s, a)$ 的波动:
2. $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 的方差来源于动作 a 的随机性和环境动态的随机性。
3.$V(s)$ 是 $Q(s, a)$ 的期望(对所有动作取平均),因此天然过滤了动作选择的随机性,其方差通常比单个 $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 小。
4.因此, $\operatorname{Var}[V(s)] \ll \operatorname{Var}[Q(s, a)]$ ,且 $\operatorname{Cov}(Q, V)$ 接近 $\operatorname{Var}[V]$ 。
极端情况 1.假设 $Q(s, a)=V(s)+\epsilon$ ,其中 $\epsilon$ 是零均值噪声(动作带来的波动)。#card
2.则 $\operatorname{Var}[Q-V]=\operatorname{Var}[\epsilon]$ ,而 $\operatorname{Var}[Q]=\operatorname{Var}[V]+\operatorname{Var}[\epsilon]$ 。
3.显然 $\operatorname{Var}[Q-V]<\operatorname{Var}[Q]$ 。
直觉解释
- 原始策略梯度(无基线):$\nabla J \propto Q(s, a) \cdot \nabla \log \pi(a \mid s)$ 。 $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 的绝对值可能很大(尤其是奖励稀疏时),导致梯度方差极高。减去基线 $\mathrm{V}(\mathrm{s}): ~ \nabla J \propto(Q(s, a)-V(s)) \cdot \nabla \log \pi(a \mid s)$ 。#card
$\mathrm{Q}(\mathrm{s}, \mathrm{a})-\mathrm{V}(\mathrm{s})$ 表示动作的相对优势,数值范围更小(有正有负)。
如果某个动作 $a$ 的 $Q(s, a)$ 很高,但 $V(s)$ 也高(因为其他动作也可能很好),优势值 $A(s, a)$ 会被 "压缩",从而抑制极端值。
- 原始策略梯度(无基线):$\nabla J \propto Q(s, a) \cdot \nabla \log \pi(a \mid s)$ 。 $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 的绝对值可能很大(尤其是奖励稀疏时),导致梯度方差极高。减去基线 $\mathrm{V}(\mathrm{s}): ~ \nabla J \propto(Q(s, a)-V(s)) \cdot \nabla \log \pi(a \mid s)$ 。#card
条件方差公式:对任意随机变量 X 和 Y ,有: $\operatorname{Var}[X]=\mathbb{E}[\operatorname{Var}[X \mid Y]]+\operatorname{Var}[\mathbb{E}[X \mid Y]]$ 应用到 $\mathrm{Q}(\mathrm{s}, \mathrm{a})$ 和 $\mathrm{V}(\mathrm{s})$ #card
$\mathbb{E}[Q \mid s]=V(s)$, 因此: $\operatorname{Var}[Q]=\mathbb{E}[\operatorname{Var}[Q \mid s]]+\operatorname{Var}[V(s)]$
而 $\operatorname{Var}[Q-V \mid s]=\operatorname{Var}[Q \mid s]$ ,因此: $\operatorname{Var}[Q-V]=\mathbb{E}[\operatorname{Var}[Q \mid s]]<\operatorname{Var}[Q]$
结论:减去 $\mathrm{V}(\mathrm{s})$ 消去了 $\operatorname{Var}[V(s)]$ 项,保留了更小的条件方差。
[[Actor-Critic]] 和 [[A2C]] 区别 #card
AC(无优势函数): 梯度更新依赖 Q(s,a) 或单步TD误差,受奖励尺度影响大,训练不稳定。
A2C(用优势函数): 优势值 A(s,a) 的尺度更稳定,收敛更快(尤其是稀疏奖励场景)。
方差减少的本质:#card
不是简单的“减去常数”,
而是通过利用 Q 和 V 的相关性,消去了 Q(s,a) 中与状态相关的波动(被 V(s) 捕获),保留了动作相关的差异。
@强化学习中action value减去state value之后怎么就减小了方差,方差不是不变吗?
https://blog.xiang578.com/post/logseq/@强化学习中action value减去state value之后怎么就减小了方差,方差不是不变吗?.html